﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.Runtime.Serialization;
using System.Net;
using System.Linq.Expressions;
#if SILVERLIGHT
using AbstraX.ClientInterfaces;
#else
using AbstraX.ServerInterfaces;
using ControlProviders.Contracts;
#endif
using System.ComponentModel.DataAnnotations;
using AbstraX.Bindings;
using AbstraX.Contracts.ComponentModel;

namespace ControlProviders.ProviderInterfaces
{
    public enum ControlType : int
    {
        TopLevelUI,
        ChildControl
    }

    public enum NodeType : int
    {
        ControlsRoot,
        Control,
        ControlElement,
        ControlAttribute,
        ControlOperation
    }

#if !SILVERLIGHT
    public interface IControlProviderService : IAbstraXService
    {
    }
#endif

    public interface IControlsRoot : IRoot
    {
    }

    public interface IControlAssembly : IElement
    {
    }

    public interface IControlAttribute : IAttribute
    {
    }

    public interface IControlOperation : IOperation
    {
    }

    public interface IControlElement : IElement
    {
    }

    public interface IControl : IControlElement, IComponentType
    {
#if SILVERLIGHT
        void RequestBuild();
#else
        void Build(IBuildContext buildContext);
#endif
    }
}
